js集锦(中)

此部分介绍了。。。

window.alert window.prompt window.confirm
document.write() document.writeln()

“liuhong”==”liuhong” //true
“Liuhong”==”liuhong” //false

5==5.0 //true
“5”==5 //true
“5.5”==5.5 //true
NaN==NaN //false

null==null //true
-0==+0 //true
false==false //true
true==1 //true
null==undefined //true

“liuhong”===”liuhong” //true
“Liuhong”===”liuhong” //false

5===5.0 //true
“5”===5 //false
NaN===NaN //false

null===null //true
-0===+0 //true
false===false //true
true===1 //false
null===undefined //false

保留字:指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。保留字包括关键字和未使用的保留字。关键字则指在语言中有特定含义,成为语法中一部分的那些字。在一些语言中,一些保留字可能并没有应用于当前的语法中,这就成了保留字与关键字的区别。一般出现这种情况可能是由于考虑扩展性。例如,Javascript有一些未来保留字,如abstract、double、goto等等。
闭包是定义在另一个函数中的匿名函数。当外部函数退出时,它会返回内部匿名函数的引用,使得通过引用调用内部函数成为可能。闭包意味着局部变量对内部函数仍然可用即使它已经超出其作用域。闭包可以让变量一直存活到不再需要它们的时候。

js支持多种对象:

(1)由程序员定义的用户自定义对象;
(2)核心或内置对象,如Date、String及Number
(3)浏览器对象,即Bom
(4)文档对象,即Dom

js的with语句使用方法

1)简要说明
with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。
2)语法格式
with(object instance)
{
//代码块
}
有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现:
with(objInstance)
{
var str = 属性1;
…..
} 去除了多次写对象名的麻烦。
3)举例

<script language="javascript">  
<!--  
function Lakers() {  
       this.name = "kobe bryant";  
       this.age = "28";  
       this.gender = "boy";  
}  
var people=new Lakers();  
with(people)  
{  
       var str = "姓名: " + name + "<br>";  
       str += "年龄:" + age + "<br>";  
       str += "性别:" + gender;  
       document.write(str);  
}  
//-->  
</script>  

代码执行效果如下:
姓名: kobe bryant
年龄:28
性别:boy

constructor:对创建对象函数的引用
prototype:对对象原型的引用。该参数使得对象可以共享属性和方法。
slice()方法将数组的元素复制到另一个新数组中,参数为起始元素和终止元素且不包括该索引表示的元素。
splice()将从数组的某一位置开始移除指定书目的元素,并可以使用新元素替代这些元素。
ceil()上取整
floor()下取整
round()当原数的小数部分为0.5或大于0.5时向上取整否则向下取整。
wrapper:它是js中的一种对象,它与其所代表的基础数组类型同名。每种基础数据类型均有其对应的String对象、Number对象和Boolean对象。这些对象都叫做wrapper.
Function对象的方法
apply()可以将一个函数的方法应用于另一个函数
call()通过另一个对象调用一个方法




































var num1 = 3.1415927;
//返回指定的位数的数字
 var num3 = num1.toPrecision(4);
函数使用技巧
(function(){
    //代理函数-->用程序来决定返回的新的函数(他是一个生产函数的函数)
    //模拟数据库
    var person = {"jim":"m","lili":"w"}
    var test = function(name){
        if(person[name] == "m"){

            /**
             * 内科,外科
             */
            return function(nk,wk){
                alert(nk+"  "+wk)
            }

        }else if(person[name] == "w"){
            /**
             * 内科,外科,妇科
             */
            return function(nk,wk,fk){
                alert(nk+"  "+wk+" "+fk)
            }            
        }
    }
    test("jim")("ok","ok")
    test("lili")("ok","ok","no")
})()

var cat = {};//cat空类
    //默认隐藏的调用下面的代码
    Object.getPrototypeOf(cat).name = "MAOMI";
    cat.__proto__.master = "USPCAT.COM";
    //测试
    cat.age = 2;
    cat["sex"] = "MAN";
    alert(cat.name +"  "+cat.age+" "+cat["sex"]+" "+cat.master)

    /**
     * 聚合函数
     */
    function mixin(receivingClass,givingClass){
        for(methodName in givingClass){
            if(!receivingClass.__proto__[methodName]){
                receivingClass.__proto__[methodName] = givingClass[methodName]
            }
        }
    }

桥梁模式在于可以独立的修改,而门面模式的意义在于调用的方便,适配器是为了解决已有接口有的类不兼容的问题。
享元模式是一个为了提高性能(空间复杂度)的设计模式,它适用于程序会生产大量的相类似的对象是耗用大量的内存的问题
代理模式是一个对象(proxy)用它来控制目标对象的访问,它要实现与目标对象相同的接口,但是它不同于装饰者模式
责任链模式消除发送者与接收者之间的耦合1.责任链的发送者知道链的入口是谁 2.每一个链节点知道自己的下一个节点是谁 3.每一个链的传入和传输值是一样的
命令模式:用于消除调用者和接收者直接的耦合的模式,并且可以对(调用这个过程进行留痕操作)真的不要乱用这个模式,因为它使你简单调用写法变得非常的复杂和有些难理解(重点)当你的业务出现了 (回退操作)(重做操作)的需求的时候你就要考虑使用这个模式了。
观察者模式:它分为2个角色1.观察者,2.被观察者2观察者模式的目的对程序的内在变化进行观察,当其有变化的时候3你可以得知,并且可以做出相应的反应

很惭愧<br><br>只做了一点微小的工作<br>谢谢大家